package com.supergo.manager.service.impl;

import com.supergo.manager.service.ItemCatService;
import com.supergo.pojo.Itemcat;
import com.supergo.service.base.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Classname ItemCatServiceImpl
 * @Description TODO
 * @Date 2020/10/26 20:50
 * @Created by ccc-j
 * @email ccc-ju@outlook.com
 */
@Service
public class ItemCatServiceImpl extends BaseServiceImpl<Itemcat> implements ItemCatService {

    @Autowired

    /**
     * 三级目录
     * @return
     */
    @Override
    public List<Itemcat> getItemCatList() {
        List<Itemcat> list = getItems(0l);
        return list;
    }

    /**
     * 根据parentId查询当前分类节点的子节点
     * @param parentId
     * @return
     */
    private List<Itemcat> getItems(Long parentId){
        // 根据parentId查询数据
        Itemcat itemcat = new Itemcat();
        itemcat.setParentId(parentId);
        List<Itemcat> list = findByWhere(itemcat);
        // 判断当前分类子节点有没有数据，有就进行递归，没有跳出递归返回null
        if(list != null && list.size() > 0){
            list.forEach(c->c.setChildren(getItems(c.getId()))); //如果当前节点有节点数据，继续递归
        }else{
            // 如果没有数据直接返回null
            return null;
        }
        return list;
    }
}
